Міністерство освіти та науки України
Національний університет «Львівська політехніка»
Інститут комп’ютерних наук та інформаційних технологій
Кафедра ПЗ
З В І Т
Лабораторна робота № 3
З курсу «Дискретної математики»
Тема: «Операції над множинами»
Мета роботи:
Навчитися виконувати операції над множинами за допомогою функцій мови Pascal.
Завдання:
Описати 3 числові масиви A (5 елементів), B (3 елементи), C (7 елементів).
Ввести з клавіатури три масиви A, B, C .
Здійснити задані перетворення над масивами і видати результат.
Знайти суму всіх елементів масиву А;
Здійснити перетворення (A∩B)∩C;
Записати декартовий добуток AxC
Текст програми
uses crt;
const n=9;
type
my=set of 1..9;
var
i,j,kst1,kst2:integer;
dig1,dig2,dig3,a,b,pr,ob,rz,rz1:array [1..n] of integer;
d,d1,d2,d3:my;
begin clrscr;
for i:=1 to n do
begin
a[i]:=0;
b[i]:=0;
pr[i]:=0;
ob[i]:=0;
end;
writeln('Enter k-st6 elenentiv 1-oji mno*unu, vid 1 do 9');
readln (kst1);
if kst1>n then
begin
writeln('Vu vvelu 3aveluke 4uslo!!!!!');
readln;
exit;
end
else
begin
j:=kst1;
for i:=1 to kst1 do
begin
writeln('Vvedit6 ',i,'element 1-oji mno*unu vid 1 do 9');
readln(j);
a[j]:=1;
end;
end;
writeln('Enter k-st6 elenentiv 2-oji mno*unu, vid 1 do 9');
readln (kst2);
if kst2>n then
begin
writeln('Vu vvelu 3aveluke 4uslo!!!!!');
readln;
exit;
end
else
begin
j:=kst2;
for i:=1 to kst2 do
begin
writeln('Vvedit6 ',i,'element 2-oji mno*unu vid 1 do 9');
readln(j);
b[j]:=1;
end;
end;
writeln('=======================================================');
writeln('Mno*una1: ');
writeln;
for i:=1 to n do
begin
write(a[i]);
end;writeln;
writeln;
writeln('Mno*una2: ');
writeln;
for i:=1 to n do
write(b[i]);writeln;
for i :=1 to n do
begin
if (a[i]=1)and(b[i]=1) then pr[i]:=1
else pr[i]:=0;
end; writeln('==================================================');
writeln ('Pereriz mno*unu1 i mno*unu2 :');
for i:=1 to n do
write(pr[i]);
for i:=1 to n do
if (a[i]=1) or (b[i]=1) then
ob[i]:=1
else ob[i]:=0; writeln;
writeln('=====================================================');
writeln('Objednannja mno*unu1 i mno*unu2 :');
for i :=1 to n do
write(ob[i]);
for i:=1 to n do
if (a[i]=1) and (b[i]=0) then
rz[i]:=1
else rz[i]:=0;writeln;
writeln('======================================================');
writeln('Ri3nucja mno*unu1 i mno*unu2:');
if (a[i]=1) and (b[i]=0) then
rz[i]:=1
else rz[i]:=0;writeln;
for i:=1 to n do
write(rz[i]);
for i:=1 to n do
if (a[i]=0) and (b[i]=1) then
rz1[i]:=1
else rz1[i]:=0;writeln;
writeln('======================================================');
writeln('Ri3nucja mno*unu2 i mno*unu1');
for i:=1 to n do
write(rz1[i]);
writeln;
writeln('======================================================');
writeln('Vvedit6 element dl@ powyky (Vid 1 do 9) ');
readln(j);
if j>n then
begin
writeln ('Vu vvelu ne pravul6ne 4uslo!!! ,vvedit6 w4e raz');
readln(j);
end;
if a[j]=1 then writeln('Element vxodut6 v mno*uny1');
if b[j]=1 then writeln('Element vxodut6 v mno*uny2');
writeln;
writeln;
writeln('+++++++++++++++++++++++++++++++++++++++++++++++++++++++');
writeln('Vvedit6 elementu 3-ox mno*un (9 elementiv vid 1 do 9) ');
for i:=1 to n do
begin
Writeln ('Vvedit6 ',i,'-uj element 1 mno*unu vid 1 do 9');
readln(dig1[i]);
end;
d1:=[dig1[1],dig1[2],dig1[3],dig1[4],dig1[5],dig1[6],dig1[7],dig1[8],dig1[9]];
writeln;
for i:=1 to n do
begin
...